-
Notifications
You must be signed in to change notification settings - Fork 158
QC-1086 Replaying postprocessing with foreachobject trigger does not produce valid results #2582
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
knopers8
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! I like the idea of adding "metadata" to interfaces instead of just "cycle" in particular. I have some change requests, but nothing serious.
Please also:
- add tests for merging cycle numbers (
testMonitorObjectCollection.cxx). - extend
test_trigger_for_each_objectto test cycle number - add support in TrendingTask
839d349 to
ed2cf61
Compare
knopers8
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I tried it myself, it works for me as well and does not seem to break anything else.
I still have a few pedantic requests, but after addressing those, the PR is good with me. Please update the documentation (doc/PostProcessing.md). In particular, mention that ForEachObject includes cycle number in the metadata of a returned trigger. Also, add a note that the example I want to run postprocessing on all already existing objects for a run works for both sync and async. Lastly, in doc/Framework.md / Monitor cycles, add a note that cycle number is stored as object metadata in QCDB
knopers8
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks
Adding Cycle value to the metadata of the MonitorObject and QualityObject. These are stored in ccdb and used to pull correct version of object when using ForEachObject trigger.
During merging we use the maximum value of all encountered cycles. The same strategy is used when converting MOs to QOs.